다중화와 역다중화
트랜스포트 계층 다중화와 역다중화 네트워크 계층이 제공하는 호스트 대 호스트 전달 서비스에서 호스트에서 동작하는 애플리케이션에 대한 프로세스 대 프로세스 전달 서비스로 확장하는 과정
- 목적지 호스트에서 트랜스포트 계층은 바로 아래의 네트워크 계층으로부터
세그먼트
를 수신한다.트랜스포트 계층은 호스트에서 동작하는 해당 애플리케이션 프로세스에게 이 세그먼트의 데이터를 전달하는 의무를 가진다.
- 트랜스포트 계층은 세그먼트(데이터)를 중간 매개자인 소켓에게 전달한다.
- 프로세스는 네트워크 애플리케이션의 한 부분으로서 소켓(socket)을 가지고 있다.
- 이는 네트워크에서 프로세스로, 한 프로세스로부터 네트워크로 데이터를 전달하는 출입구 역할을 한다.
- 각각의 소켓은 하나의 유일한 식별자를 가진다.

수신한 트랜스 포트 계층 세그먼트는 어떻게 적절한 소켓으로 향하는가?
각각의 트랜스포트 계층 세그먼트는 세그먼트에 필드 집합을 가지고 있으며, 트랜스포트 계층은 수신 소켓을 식별하기 위해 이러한 필드를 검사한 후 해당 소켓으로 보낸다.
역다중화(demultiplexing)
: 트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업다중화(multiplexing)
- 출발지 호스트에서 소켓으로부터 데이터를 모음
- 이에 대한 세그먼트를 생성하기 위해 각 데이터에 헤더 정보로 캡슐화
- 그 세그먼트를 네트워크 계층으로 전달하는 작업
트랜스포트 계층 다중화의 두 가지 요구사항
- 소켓은 유일한 식별자를 갖는다.
- 각 세그먼트는 세그먼트가 전달될 적절한 소켓을 가리키는 특별한 필드를 갖는다.
- 출발지 포트 번호 필드(source port number field)
- 목적지 포트 번호 필드(destination port number field)

역다중화 서비스의 순서
- 호스트의 각 소켓은 포트 번호를 할당받음
- 세그먼트가 호스트에 도착하면,
- 트랜스포트 계층은 세그먼트 안의 목적지 포트 번호를 검사
- 그에 상응하는 소켓으로 세그먼트를 보냄
- 세그먼트의 데이터는 소켓을 통해 해당되는 프로세스로 전달됨
이는 UDP의 기본적인 동작 방식과 같다.
비연결형 다중화와 역다중화
UDP 소켓은 목적지 IP 주소와 목적지 포트 번호로 구성된 두 요소로 된 집합에 의해 식별된다.
따라서 만약 2개의 UDP 세그먼트가 같은 목적지 IP 주소와 목적지 포트 번호를 가진다면, 이 두개의 세그먼트는 같은 목적지 소켓을 통해 같은 프로세스로 향할 것이다.
그렇다면 출발지 포트 번호는 무슨 목적으로 사용되는가?
출발지 포트 번호는 회신 주소의 한 부분으로 사용된다.
아래 그림처럼, B가 A에게로 세그먼트를 보내기를 원할 때 B에서 A로 가는 세그먼트의 목적지 포트 번호는 A로 부터 B로 가는 세그먼트의 출발지 포트 번호로부터 가져온다.